Knowledge Reuse for Software Reuse
نویسندگان
چکیده
Software reuse can provide significant improvements in software productivity and quality whilst reducing development costs. Expressing software reuse intentions can be difficult though. A developer may aspire to reuse a software component but experience difficulty expressing their reuse intentions in a manner that is compatible with, or understood by, the component retrieval system. Various intelligent retrieval techniques have been developed that assist a developer in locating or discovering components in an efficient manner. These solutions share a common shortcoming: the developer must be capable of anticipating all reuse opportunities and initiating the retrieval process. There is a need for a comprehensive technique that not only assists with retrievals but that can also identify reuse opportunities. This paper advocates that component-based reuse can be supported through knowledge collaboration. Often programming tasks and solutions are replicated; this characteristic of software can be exploited for the benefit of future developments. Through the mining of existing source code solutions, knowledge, relating to how components are used by developers, can be extracted. Based on a developer’s current programming task, this knowledge can subsequently be filtered and used to recommend a candidate set of reusable components. This novel recommendation approach applies and extends commonly used Information Retrieval and Information Filtering techniques such as Collaborative Filtering, Content-Based Filtering, and Bayesian Clustering Models, to the software reuse domain. This recommendation technology is applied to several thousand open-source Java classes. The most effective recommendation algorithm produces recommendations of a high quality at a low cost.
منابع مشابه
SERVICE - BASED AUTOMATION OF SOFTWARE CONSTRUCTION ACTIVITIES by Marcus Zinn
____________________________________________________________________ ____________________________________________________________________ iii Abstract Service-based automation of software construction activities Marcus Zinn Master of Science The reuse of software units, such as classes, components and services require professional knowledge to be performed. Today a multiplicity of different sof...
متن کاملApplying Experiences of Organizing Large-Scale Knowledge Bases to Industry-Sized Software Reuse
keywords. compositional software reuse, large-scale knowledge base organization, contextual knowledge representation, multiple-view approach, case-based reasoning. 1. INTRODUCTION Software reuse is widely believed to be a promising means for improving software productivity and reliability, and therefore is an issue of growing interest in software engineering. Unfortunately, many difficulties pr...
متن کاملKnowledge maturing as a process model for describing software reuse
Software reuse has become a major topic in software engineering since reusing artifacts has an important effect on the cost and quality of software products. Accordingly, understanding and managing the mechanisms of software reuse is important for every organization that develops software. In this paper we describe a knowledge maturing process in software engineering and use it to analyze two c...
متن کاملOperationalizing Comprehensive Software Knowledge Reuse Based on CBR Methods
Reuse of software knowledge is a principle for improving productivity of software development and reliability of software systems. To achieve this, reuse must be done systematically. This means that methods for retrieving, adapting, and learning have to be defined. In this paper we present MIRACLE, a model which integrates the reuse of software knowledge and case-based reasoning. MIRACLE extend...
متن کاملSRS: A Software Reuse System based on the Semantic Web
As software systems become bigger and more complex, software developers need to cope with a growing amount of information and knowledge. New supporting tools for the management of knowledge created during software development and maintenance is a necessity felt in the software industry. The knowledge generated during the software development process can be a valuable asset for a software compan...
متن کاملReuse Approaches in Software Engineering and Knowledge Engineering: A Comparison
This paper compares the approaches to reuse in software engineering and knowledge engineering. In detail, definitions are given, the history is enlightened, the main approaches are described, and their feasibility is discussed. The aim of the paper is to show the close relation between software and knowledge engineering and to help the knowledge engineering community to learn from experiences i...
متن کامل